package org.example.nio_demo;

import java.nio.ByteBuffer;

/**
 * @ClassName Demo2
 * @Description
 * @Author zhangsw
 * @Date 2020/11/9 21:31
 * @Version 1.0
 */
public class Demo2 {
    public static void main(String[] args) {
        String str = "abcde";
        ByteBuffer buffer = ByteBuffer.allocate(1024);
        buffer.put(str.getBytes());
        buffer.flip();
        byte[] dst = new byte[1024];
        buffer.get(dst, 0, 2);
        System.err.println(new String(dst, 0, 2));
        System.err.println("第一次get的位置" + buffer.position());

        buffer.mark();//标记位置

        buffer.get(dst, 2, 2);
        System.err.println(new String(dst, 2, 2));
        System.err.println("第二次get的位置" + buffer.position());

        //resize() 恢复到mark的位置
        buffer.reset();
        System.err.println("恢复到mark的位置" + buffer.position());

        //判断缓冲区中是否还有剩余的数据
        if (buffer.hasRemaining()) {
            System.err.println("可以操作的数量" + buffer.remaining());//获取缓冲区中可以操作的数量
        }
    }
}
